import type { LineModel, MaterialModel } from '#/api/master/models';

/** 工序 Model */
export interface WorkOrderModel {
  id: number;
  /** 父 Id */
  parentId: number;
  /** 单号 */
  wo: string;
  /** 产品 Id */
  productId: number;
  /** 产品 */
  product: MaterialModel;
  /** 所属产线 Id */
  lineId: number;
  /** 所属产线 */
  line: LineModel;
  /** 工单类型, (试制;量产;返工) */
  woType: string;
  /** 计划生产数量 */
  planQty: number;
  /** 计划开始日期 */
  planStartDate: string;
  /** 计划完成日期 */
  planEndDate: string;
  /** 优先级 */
  priority: number;
  /** 实际开始日期 */
  actualStartDate?: string;
  /** 实际完成日期 */
  actualEndDate?: string;
  /** 已投产的数量 */
  startedQty: number;
  /** 良品数量 */
  goodQty: number;
  /** 报废数量 */
  scrappedQty: number;
  /** 是否为主工单 */
  isMaster: boolean;
  /** 工单来源 */
  source?: string;
  /** 产成品批次号 */
  batchNo?: string;
  /** 备注 */
  remark?: string;
  /** 单据状态
   * 草稿; 待审批; 已下发; 已排产; 生产中; 已暂停; 已完工; 已关闭; 已取消
   */
  status: string;
  /** 创建时间 */
  createdBy?: string;
  /** 创建时间 */
  createdTime?: string;
  /** 更新人 */
  updatedBy?: string;
  /** 更新时间 */
  updatedTime?: string;
}

/**
 * 工单状态选项。
 */
export function useWorkOrderStatusOptions() {
  return [
    { color: '', label: '已创建', value: 'Draft' },
    { color: 'orange', label: '待审批', value: 'PendingApproval' },
    { color: 'magenta', label: '已下发', value: 'Issued' },
    { color: 'cyan', label: '已排产', value: 'Scheduled' },
    { color: 'green', label: '生产中', value: 'InProgress' },
    { color: 'gold', label: '已暂停', value: 'OnHold' },
    { color: 'success', label: '已完工', value: 'Completed' },
    { color: 'blue', label: '已关闭', value: 'Closed' },
    { color: 'red', label: '已取消', value: 'Cancelled' },
  ];
}

/**
 * 工单类型选项。
 */
export function useWorkOrderTypeOptions() {
  return [
    { color: '', label: '试制', value: 'Trial' },
    { color: 'blue', label: '量产', value: 'Mass' },
    { color: 'orange', label: '返工', value: 'Rework' },
  ];
}
